package com.yuyou.fn.educational.service;

import com.github.wens.framework.service.ISuperService;
import com.yuyou.fn.educational.entity.BaseGrade;
import com.yuyou.fn.educational.entity.ExternalRegDetail;
import com.yuyou.fn.educational.entity.Period;
import com.yuyou.fn.educational.vo.ExternalRegDetailImportVo;
import com.yuyou.fn.educational.vo.ExternalRegQueryVo;
import com.yuyou.fn.platform.entity.AreaTeam;

import java.util.List;

/**
 *
 * ExternalRegDetail 表数据服务层接口
 *
 */
public interface IExternalRegDetailService extends ISuperService<ExternalRegDetail,Long> {


    void importExternalReg(AreaTeam areaTeam,List<Period> periodList,List<BaseGrade> baseGradeList,List<ExternalRegDetailImportVo> externalRegDetaiImportVoList, String from) ;

    void updateByFromId(ExternalRegDetail externalRegDetail,String fromId);

    void deleteByStudentNosClassNos(List<String> studentNos,List<String> classNos);

    List<ExternalRegDetail> findByStudentIdPeriodIds(Long studentId,List<Long> periodIds,String ...columns);

    List<ExternalRegDetail> findByStudentIdsPeriodIdsGradeId(List<Long> studentIds,List<Long> periodIds,Long gradeId,String ...columns);

    List<ExternalRegDetail> findBySeniorIdNosPeriodIdsGradeId(Long areaTeamId,List<Long> periodIds,List<String> seniorIdNos,Long gradeId,String ...columns);

    void deleteByPeriodIdsGradeIds(List<Long> periodIds,List<Long> gradeIds);

    long countByStudentIdPeriodIdsGradeIdsLevels(Long studentId, List<Long> periodIds, List<Long> gradeIds, List<Integer> levels);

    List<ExternalRegDetail> findPeriodRegList(Long periodId, ExternalRegQueryVo externalRegQueryVo,String ...columns);

    List<ExternalRegDetail> findPeriodsRegList(List<Long> periodIds, ExternalRegQueryVo externalRegQueryVo,String ...columns);

    Long countPrevious(Long studentId,List<Long> periodIds,  Long areaTeamId, Integer regStatus);

    void findExternalReg(AreaTeam areaTeam, List<Period> periods, List<BaseGrade> baseGrades, String yearName, List<String> seasonNames, List<String> gradeNames);

    void findZyExternalReg(AreaTeam areaTeam, List<Period> periods, List<BaseGrade> baseGrades, String yearName, List<String> seasonNames, List<String> gradeNames);

    void dealZyExternalReg(AreaTeam areaTeam, List<Period> periods, List<BaseGrade> baseGrades, String yearName, List<String> seasonNames, List<String> gradeNames,String token);

    String getZyToken();



    List<ExternalRegDetailImportVo> findExternalRegDetailImportList(String url,String token,String yearName,String seasonName,String gradeName,String lastBegin,String begin);

    List<ExternalRegDetail> findByAreaTeamIdPeriodIdsGradeId(Long areaTeamId,List<Long> periodIds,Long gradeId,String ...columns);
}